# -*-coding utf-8 -*-

__project__ = 'le-bo16'
__file_name__ = 'homework13'
__author__ = 'hqDu'
__time__ = '2020-11-27 22:22'
__product_name = 'PyCharm'
# @fileName :homework13.py

# 1、下列程序结果是______.
# class A:
#
#     def __init__(self):
#         print("初始化")

#     def __del__(self):
#         print("销毁")
#
#     def __str__(self):
#         return "类A"
# a = A()
# print(a)
# 运行结果：
# 初始化
# 类A
# 销毁
"""
 Process finished with exit code 0
 表示进程结束，还存在0个进程
 del()被自动调用
 引用计数为0了，所以打印了del，才结束了
"""
#
#
# 2. 下列程序执行结果______.
# class Animal(object):
#
#     def shut(self):
#         print("动物在叫")

# class Dog(Animal):
#
#     def shut(self):
#         super().shut()
#         print("汪汪汪")

# dog = Dog()
# dog.shut()
#
# 动物在叫
# 汪汪汪
#
# 3. 创建猫类：
# 	类名：Cat
# 	属性：无
# 描述：创建一个Cat类，通过Cat类创建一个对象cat，执行print(cat)输出“喵？喵？喵？”.
#
# class Cat(object):
#     def shut(self):
#         print("喵？喵？喵？")
#
# cat = Cat()
# cat.shut()


# 4.创建计算器类：
# 	类名：Calculator
# 	属性：number_1（数字一）、number_2（数字二）
# 方法：
# 	def __init__(self,number_1,number_2):
# # 类的初始化方法
# 	def add(self) # 返回数字一加数字二的值
# 	def sub(self) # 返回数字一减去数字二的值
# 	def div(self) # 返回数字一除以数字二的值
# 	def mul(self) # 返回数字一乘以数字二的值
# 描述：创建计算器类，通过计算器类创建一个计算器对象，在创建对象时需要传入数字一和数字二，分别调用计算器的四种方法.
#

# class Calculator(object):
#     # 初始化实例
#     def __init__(self, number_1, number_2):
#         self.number1 = number_1
#         self.number2 = number_2
#
#     # 加操作
#     def add(self):
#         return self.number1 + self.number2
#     # 减操作
#     def sub(self):
#         return self.number1 - self.number2
#     # 除操作
#     def div(self):
#         if self.number1 != 0:
#             return self.number2 / self.number1
#         else:
#             print("分母为0，不可以做除法操作")
#     # 乘操作
#     def mul(self):
#         return self.number1 * self.number2
#
# c = Calculator(1,0)
# print(c.add())
# print(c.div())
# print(c.sub())
# print(c.mul())



# 5.创建Cat和Dog类分别继承Animal类，分别重写shut和eat方法，创建Cat类对象cat和Dog类对象dog，分别调用cat和dog的shut和eat方法
class Animal(object):
    def shut(self):
        print("叫声；")

    def eat(self):
        print("爱吃的食物：")

class Cat(Animal):
    def shut(self):
        print("喵喵喵")

    def eat(self):
        print("猫粮")

    def father(self):
        # Animal.__init__(self)
        Animal.shut(self)
        Animal.eat(self)



class Dog(Animal):
    def shut(self):
        print("汪汪汪")

    def eat(self):
        print("狗粮")


cat = Cat()
cat.father()
cat.shut()
cat.eat()

dog = Dog()



dog.shut()
dog.eat()



#
# 1、面向对象三大特性是__继承___、__封装____、___多态___.
# 2、单例模式创建保证实例只创建___1___次.
